package com.bdqn.shequ.modules.sys.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.bdqn.shequ.common.validator.group.AddGroup;
import com.bdqn.shequ.common.validator.group.UpdateGroup;

import javax.validation.constraints.*;
import java.io.Serializable;
import java.util.Date;

/**
 * 活动表
 * 
 * @author Mark
 * @email sunlightcs@gmail.com
 * @date 2019-04-11 16:18:25
 */
@Data
@TableName("tc_activity")
public class TcActivityEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 主键id
	 */
	@TableId
	private Long id;
	/**
	 * 活动名称
	 */
	@NotBlank(message="活动名称不能为空", groups = {AddGroup.class, UpdateGroup.class})
	private String activityName;
	/**
	 * 活动最大人数
	 */
	@Min(value = 1, message = "活动人数最小值为1", groups = {AddGroup.class, UpdateGroup.class}) // 最小值1积分
	@Max(value = 9999, message = "活动人数最大值为9999", groups = {AddGroup.class, UpdateGroup.class}) // 最大值88
	private Integer activityMaxNum;
	/**
	 * 活动积分
	 */
	@Min(value = 1, message = "活动积分最小值为1", groups = {AddGroup.class, UpdateGroup.class}) // 最小值1积分
	@Max(value = 9999, message = "活动积分最大值为9999", groups = {AddGroup.class, UpdateGroup.class}) // 最大值88
	private Integer activityIntegral;
	/**
	 * 申请人类型（SYSTEM:系统;MEMBER:会员）
	 */
	private String applicantType;
	/**
	 * 活动状态:(UN_AUDIT:申请待审核;APPLY_CANCEL:申请取消;AUDIT_PASS:申请审核通过;AUDIT_FAIL:申请审核不通过;ACTIVITY_SIGN_UP:活动报名中;ACTIVITY_IN_PROGRESS:活动进行中;ACTIVITY_CANCEL:活动取消;ACTIVITY_FINISHED:活动结束;ACTIVITY_APPRECIATED:活动已打赏)
	 */
	private String activityStatus;
	/**
	 * 申请人
	 */
	private String applicantId;
	/**
	 * 审批人
	 */
	private Long approvalId;
	/**
	 * 联系人
	 */
	@NotBlank(message="联系人名称不能为空", groups = {AddGroup.class, UpdateGroup.class})
	private String contactsId;
	/**
	 * 联系人电话
	 */
	@Pattern(regexp ="^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\\d{8}$",message = "手机号码格式错误", groups = {AddGroup.class, UpdateGroup.class})
	@NotBlank(message="联系人电话不能为空", groups = {AddGroup.class, UpdateGroup.class})
	private String contactsPhone;
	/**
	 * 活动微文链接
	 */
	private String activityUrl;
	/**
	 * 活动地址
	 */
	@NotBlank(message="活动地址不能为空", groups = {AddGroup.class, UpdateGroup.class})
	private String activityAddress;
	/**
	 * 活动地址坐标
	 */
	private String activityCoordinate;
	/**
	 * 备注
	 */
	private String remark;
	/**
	 * 更新时间
	 */
	private Date updateTime;
	/**
	 * 创建时间
	 */
	private Date createTime;
	/**
	 * 任务开始时间
	 */
	private Date startTime;
	/**
	 * 任务结束时间
	 */
	private Date endTime;
	/**
	 * 修改人
	 */
	private Long updateUser;
	/**
	 * 创建人
	 */
	private Long createUser;

	public static long getSerialVersionUID() {
		return serialVersionUID;
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getActivityName() {
		return activityName;
	}

	public void setActivityName(String activityName) {
		this.activityName = activityName;
	}

	public Integer getActivityMaxNum() {
		return activityMaxNum;
	}

	public void setActivityMaxNum(Integer activityMaxNum) {
		this.activityMaxNum = activityMaxNum;
	}

	public Integer getActivityIntegral() {
		return activityIntegral;
	}

	public void setActivityIntegral(Integer activityIntegral) {
		this.activityIntegral = activityIntegral;
	}

	public String getApplicantType() {
		return applicantType;
	}

	public void setApplicantType(String applicantType) {
		this.applicantType = applicantType;
	}

	public String getActivityStatus() {
		return activityStatus;
	}

	public void setActivityStatus(String activityStatus) {
		this.activityStatus = activityStatus;
	}

	public String getApplicantId() {
		return applicantId;
	}

	public void setApplicantId(String applicantId) {
		this.applicantId = applicantId;
	}

	public Long getApprovalId() {
		return approvalId;
	}

	public void setApprovalId(Long approvalId) {
		this.approvalId = approvalId;
	}

	public String getContactsId() {
		return contactsId;
	}

	public void setContactsId(String contactsId) {
		this.contactsId = contactsId;
	}

	public String getContactsPhone() {
		return contactsPhone;
	}

	public void setContactsPhone(String contactsPhone) {
		this.contactsPhone = contactsPhone;
	}

	public String getActivityUrl() {
		return activityUrl;
	}

	public void setActivityUrl(String activityUrl) {
		this.activityUrl = activityUrl;
	}

	public String getActivityAddress() {
		return activityAddress;
	}

	public void setActivityAddress(String activityAddress) {
		this.activityAddress = activityAddress;
	}

	public String getActivityCoordinate() {
		return activityCoordinate;
	}

	public void setActivityCoordinate(String activityCoordinate) {
		this.activityCoordinate = activityCoordinate;
	}

	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public Date getUpdateTime() {
		return updateTime;
	}

	public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	public Date getStartTime() {
		return startTime;
	}

	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}

	public Date getEndTime() {
		return endTime;
	}

	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}

	public Long getUpdateUser() {
		return updateUser;
	}

	public void setUpdateUser(Long updateUser) {
		this.updateUser = updateUser;
	}

	public Long getCreateUser() {
		return createUser;
	}

	public void setCreateUser(Long createUser) {
		this.createUser = createUser;
	}
}
